Notes (Week 1 Monday)
These are the notes I wrote during the lecture.
*Sets* are (informally) collections of *elements*
Sets come with a *membership relation*
∈
If x is an element,
and if S is a set,
then
x ∈ S "x in S" or "x is an element of S"
is true iff x is one of the elements of S
One way to define sets is by *explicit enumeration*
{1,2,3} denotes the set with exactly three elements,
namely: 1, 2 and 3
1 ∈ {1,2,3} <--- true statement
4 ∈ {1,2,3} <--- false statement
∩ "intersection"
{1,2,3} ∩ {4,5,6} = {}
{1,2,3} ∩ {3,4,5} = {3}
{1,2,3} ∪ {3,4,5} = {1,2,3,4,5}
{1,2} ⊆ {1,2,3} <--- true statement
{1,2,3} ⊆ {1,2} <--- false statement
Q: How is subset (⊆) not like union (∪) and intersection (∩)?
A: The "types" are different.
∪,∩ are binary operators on sets
∪ : Set × Set → Set
∩ : Set × Set → Set
⊆ : Set × Set → Bool
S ∪ T is a set, if S and T are sets
but S ⊆ T "S is a subset of T" is a truth claim about sets,
but it's not a set itself.
Prove:
A ⊆ A ∪ B
Proof:
By the definition of ⊆,
it suffices to prove the following
for an arbitrary but fixed A
if x ∈ A holds, then x ∈ A ∪ B holds
By definition of ∪, it suffices to instead prove:
if x ∈ A holds, then either x ∈ A *or* x ∈ B holds
The desired result follows immediately by disjunction introduction.
QED
Disjunction introduction is the following proof rule:
(will be covered later in the course)
If A holds, then A ∨ B ("A or B") holds
If B holds, then A ∨ B ("A or B") holds
^ confusingly, these are both called disjunction introduction
Q: Why are we being so pedantic?
A: (Clue) things can look obvious despite not being true,
and we want to make sure things both look obvious
and in fact *are* obvious
*Set comprehensions* are expressions of the following form:
{x | P(x)} <--- where P is a predicate (aka a truth claim)
about elements
{x | P(x)} "the set of all x such that P(x) holds"
{x | x ∈ ℕ and x < 2} = {0,1}
{x | x ∈ ℕ and x is odd} = {1,3,5,...}
Q: Are we considering 0 as a natural number?
A: Yes. Computer scientists generally start counting from 0.
Some people don't consider 0 to be natural (that is, they say 0 ∉ ℕ)
These people are usually either mathematicians or crazy.
General principle: extensionality.
We consider two sets to be equal,
iff we can't distinguish them through the membership relation
S = T
iff
∀x. x ∈ S iff x ∈ T
...and by the principle of extensionality,
{y | y ∈ x} = x
We can have sets of sets
{{},{1,2}} <-- totally valid set
Therefore, sets can be elements of sets,
so there should be nothing stopping us from *saying*
x ∈ x provided x is a set
Q: I think the axiom of regularity
prohibits sets containing themselves?
A: We're not doing ZFC in this course,
if you've never heard of the regularity axiom,
don't worry.
Yes, that's correct.
But it doesn't prevent us from writing the expression.
Q: {} ∈ {} ?
A: In order for this to be true,
{} would have to be one of the elements of {}.
But: {} has no elements; hence it's not.
But, these are true:
{} ∈ {{}}
{} ⊆ {}
Q: why does this matter?
A: Logically inconsistent to define sets from arbitrary predicates
One way to do logical proof is: proof by contradiction.
To prove A, we assume that A is false, and derive
a contradiction from that assumption.
If we have Russell's paradox, we can prove everything!
To prove A,
assume that A is false,
derive a contradiction using Russell's paradox,
conclude the proof by contradiction.
^ this means that our logic is useless
(the technical term is: it's inconsistent)
This is why we're being so pedantic!
In order for our formal modelling of systems to mean anything,
we should be doing it in a logical framework that doesn't have
these paradoxes.
+ is a function symbol of arity 2,
because + expects two arguments,
and if you give it two terms (numbers)
then you get a term back
! would have arity 1
Because simple formulas are built on top of terms (remember: layers),
we can't use simple formulas as arguments to themselves:
3 = 5 <-- that's a simple formula
3 = (x+1) <-- also a simple formula
(3 = 4) = (1 = 1) <-- not a simple formula
the arguments to = need to be terms,
not themselves simple formulas
Q: Is this formula true or false?
n! = n ↔ (n = 1 ∨ n = 3)
A: 3! is not in fact 3
that is: the LHS is false, but the RHS is true
A: It depends. It depends on the value of n.
If I'm using this formula in a context where n happens to be 3,
then the formula as stated is false.
On the other hand: if n happens to 1, it's true.
The point:
Formulas on their own aren't necessarily true or false.
Instead: formulas in general only get a truth value
when we put them in a context
aka an environment
aka a valuation
aka a mapping from variables to values
This formula:
∀n. (n! = n ↔ (n = 1 ∨ n = 3))
^ this formula happens to have a truth value that's
independent of the context